package com.ming.nio;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.nio.MappedByteBuffer;
import java.nio.channels.FileChannel;

public class MappedByteBufferTest {
    public static void main(String[] args) throws IOException {

        RandomAccessFile rw = new RandomAccessFile("1.txt", "rw");

        FileChannel channel = rw.getChannel();

        /**
         * FileChannel.MapMode.READ_WRITE:使用读写模式
         * 第二个参数：可以直接修改的内存位置
         * 第三个参数： 是映射到内存的大小（不是索引位置） 即将 1.txt 的多少个直接映射带内存
         * 可以直接修改的范围 [0-5)
         * 实际类型 DirectByteBuffer
         */
        MappedByteBuffer map = channel.map(FileChannel.MapMode.READ_WRITE, 0, 5);
        map.put(0,(byte) 'H');
        map.put(4,(byte) '0');

        rw.close();
    }
}
